import { PrismaClient } from '@prisma/client';
import crypto from 'crypto';

const prisma = new PrismaClient();

async function initAdminPassword() {
  try {
    console.log('开始初始化管理员密码...');

    // 默认管理员密码
    const defaultPassword = 'admin123';
    // 使用MD5加密密码
    const hashedPassword = crypto
      .createHash('md5')
      .update(defaultPassword)
      .digest('hex');

    // 检查是否已有密码配置
    const existingConfig = await prisma.adminConfig.findUnique({
      where: {
        config_key: 'admin_password',
      },
    });

    if (existingConfig) {
      console.log('管理员密码配置已存在，跳过初始化');
    } else {
      // 插入默认密码配置
      await prisma.adminConfig.create({
        data: {
          config_key: 'admin_password',
          config_value: hashedPassword,
        },
      });
      console.log(`管理员密码初始化成功。默认密码: '${defaultPassword}'（请登录后立即更改）`);
    }

    await prisma.$disconnect();
  } catch (error) {
    console.error('管理员密码初始化失败:', error);
    await prisma.$disconnect();
    process.exit(1);
  }
}

initAdminPassword();